home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / utilities / time / jup11.lha / jup.mod < prev    next >
Encoding:
Text File  |  1994-12-08  |  2.9 KB  |  44 lines

  1. (*--------------------------------------------------------------------------
  2.   $VER: jup_mod 0.16 (07-dec-94)
  3.   --------------------------------------------------------------------------*)
  4. MODULE jup; IMPORT Arts; IMPORT DosD, DosL; IMPORT SYSTEM; CONST modVersion=
  5. "$VER: jup 1.1 (07-dec-94) (PD)1994 by Jürgen Weinelt\n\o"   ;   dataName  =
  6. "T:JUPDATA"; VAR a: ARRAY[0..80] OF CHAR; d: LONGINT; f: DosD.FileHandlePtr;
  7. date: DosD.Date; diff: LONGINT ; current: DosD.Date; dt: DosD.DateTime; dst,
  8. tst : ARRAY[0..255] OF CHAR ; PROCEDURE PutStr(a : ARRAY OF CHAR) ; VAR dum:
  9. LONGINT ; BEGIN dum:=DosL.Write(DosL.Output(),SYSTEM.ADR(a),HIGH(a)+1) ; END
  10. PutStr ; PROCEDURE PutDate(a: ARRAY OF CHAR) ; VAR dum: LONGINT; i: LONGINT;
  11. BEGIN FOR i := HIGH(a) TO 0 BY -1 DO IF a[i] =" " THEN a[i]:="\o"; END; END;
  12. dum := DosL.Write( DosL.Output()  ,SYSTEM.ADR(a) ,HIGH(  a)+1); END PutDate;
  13. PROCEDURE PutInt(t: LONGINT); VAR str: ARRAY[0..1] OF CHAR ; BEGIN str[0] :=
  14. "\o" ; str[1]:="\o"; IF t#0 THEN str[0] := CHAR((t MOD 10)+48); PutInt(t DIV
  15. 10); PutStr(str); END; END  PutInt; PROCEDURE PutTime(t: LONGINT); VAR temp:
  16. LONGINT; flag: BOOLEAN; BEGIN flag:=FALSE; temp:=t DIV (24*60*60); IF temp>0
  17. THEN PutInt(temp); IF temp  #1 THEN PutStr(" days "); ELSE  PutStr(" day ");
  18. END; t:=t-temp *24 *60 *60; flag:=TRUE; END; temp:=t DIV (60*60); IF flag OR
  19. (temp>0) THEN IF temp=0 THEN PutStr("0"); ELSE PutInt(temp); END; IF temp #1
  20. THEN PutStr(" hours "); ELSE PutStr(" hour "); END; t:=t-temp *60*60; flag:=
  21. TRUE; END; temp:=t DIV 60; IF flag OR (temp  >0) THEN IF temp=0 THEN PutStr(
  22. "0"  ); ELSE PutInt(temp); END ; IF temp  #1 THEN PutStr(" minutes ") ; ELSE
  23. PutStr(" minute "); END; t:=t-temp *60; flag:=TRUE; END; temp:=t; IF flag OR
  24. (temp>0) THEN IF temp=0 THEN PutStr("0"); ELSE PutInt(temp); END; IF temp #1
  25. THEN  PutStr(" seconds.") ; ELSE PutStr(" second."); END; END; END  PutTime;
  26. BEGIN a:=modVersion; f:=DosL.Open(SYSTEM.ADR(dataName),DosD.readOnly); IF f#
  27. NIL THEN d:=DosL.Read(f,SYSTEM.ADR(date),SIZE(date)); DosL.Close(f); f:=NIL;
  28. ELSE  DosL.DateStamp( SYSTEM.ADR(date)); f:=DosL.Open(SYSTEM.ADR(dataName ),
  29. DosD.newFile); IF f #NIL THEN d:=DosL.Write(f,SYSTEM.ADR(date) ,SIZE(date));
  30. DosL.Close( f ); f  :=NIL; ELSE  Arts.Exit(5 ) ; END ; END ; DosL.DateStamp(
  31. SYSTEM.ADR(current)); diff := (current.days*24*60*60)-(date.days*24*60*60)+(
  32. current.minute*60)-(date.minute*60)+(current.tick DIV 50)-(date.tick DIV 50)
  33. ; IF diff<0 THEN Arts.Exit(6); END; dt.date:=date; dt.format:=DosD.formatDOS
  34. ; dt.flags:=DosD.DateTimeFlagSet{ DosD.subst }; dt.strDay:=NIL; dt.strDate:=
  35. SYSTEM.ADR(dst); dt.strTime:=SYSTEM.ADR(tst) ; d:=DosL.DateToStr(SYSTEM.ADR(
  36. dt  ))  ; IF d=0 THEN Arts.Exit(7); END ; PutStr( "Booted " ); PutDate(dst);
  37. PutStr(" "); PutStr(tst); IF diff>0 THEN PutStr(" up "); PutTime(diff); END;
  38. PutStr("\n"); Arts.Exit(0); CLOSE IF f #NIL THEN DosL.Close(f); f:=NIL; END;
  39. END
  40. jup
  41. .
  42.  
  43. (* Funny, isn't it? :-) *)
  44.